import { combineReducers } from 'redux'
import todos from './todos'
import visibilityFilter from './visibilityFilter'
import visibilityFilter1 from './visibilityFilter1'

const todoApp = combineReducers({
    todos,
    visibilityFilter,
    visibilityFilter1
})
// console.log(todoApp)
// 与上面的代码完全等价
/* export default function todoApp(state = {}, action) {
    return {
        visibilityFilter: visibilityFilter(state.visibilityFilter, action),
        todos: todos(state.todos, action)
    }
} */

export default todoApp


/**
 * combineReducers 辅助函数的作用是，把一个由多个不同 reducer 函数作为 value 的 object，合并成一个最终的 reducer 函数
 * reducer 指定了应用状态的变化如何响应 actions 并发送到 store 的，记住 actions 只是描述了有事情发生了这一事实，并没有描述应用如何更新 state。
 * reducer 只是一个接收 state 和 action，并返回新的 state 的函数。
  */